package es.uned.ii.si3.web.forms;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.upload.FormFile;


public class CerrarProyectoSubmitForm extends ActionForm{

	private static final long serialVersionUID = 6360696978036816277L;
	private int idProyecto;
	private String calificacion;
	private FormFile memoria;
	private FormFile codigo;

	
	
	public void reset(ActionMapping mapping, HttpServletRequest request) {
		setMemoria(null);
		setCodigo(null);
		super.reset(mapping, request);
	}

	
	public void setIdProyecto(int idProyecto) {
		this.idProyecto = idProyecto;
	}

	
	public int getIdProyecto() {
		return idProyecto;
	}

	
	public void setCalificacion(String calificacion) {
		this.calificacion = calificacion;
	}
	
	
	public String getCalificacion() {
		return calificacion;
	}


	public void setMemoria(FormFile memoria) {
		this.memoria = memoria;
	}


	public FormFile getMemoria() {
		return memoria;
	}


	public void setCodigo(FormFile codigo) {
		this.codigo = codigo;
	}


	public FormFile getCodigo() {
		return codigo;
	}


	public ActionErrors validate(ActionMapping mapping, HttpServletRequest request ) {

		ActionErrors errors = new ActionErrors();
		
		try {
			double calificacionNumerica = Double.parseDouble(getCalificacion());
			if ((calificacionNumerica < 0) || (calificacionNumerica > 10)) {
				errors.add("calificacion", new ActionMessage("Debe introducir un n&uacute;mero entre 0 y 10", false));
			}
		} catch (Exception e) { 
			errors.add("calificacion", new ActionMessage("Debe introducir un n&uacute;mero entre 0 y 10", false));
		}
		
		if ((memoria.getFileName() == null) || (memoria.getFileName().length() == 0)) {
			errors.add("memoria", new ActionMessage("Campo obligatorio", false));
		} else if (!memoria.getFileName().toLowerCase().endsWith(".pdf")) {
    		errors.add("memoria", new ActionMessage("El archivo debe ser un documento PDF", false));
    	}
		
		if ((codigo.getFileName() == null) || (codigo.getFileName().length() == 0)) {
			errors.add("codigo", new ActionMessage("Campo obligatorio", false));
		} else if ( (!codigo.getFileName().toLowerCase().endsWith(".zip")) && (!codigo.getFileName().toLowerCase().endsWith(".rar")) ) {
    		errors.add("codigo", new ActionMessage("El archivo debe ser un volumen ZIP o RAR", false));
    	}

		return errors;
	}
	
}
